EBSILON®Professional Online Dokumentation
EbsScript / Zugriff auf Attribute / Methoden von Objekten
In diesem Thema
    Zugriff auf Attribute / Methoden von Objekten
    In diesem Thema

    Zugriff auf Attribute eines Objekts

    Entsprechend kann auch auf andere Attribute der Objekte eines Modells (Komponenten, Leitungen, Makros, Wertekreuze, Textfeldern, OLE-Objekt, Grafische Elemente usw.) zugegriffen werden - einige Eigenschaften sind nicht bei allen Objektarten vorhanden:

    Syntax

    Beschreibung

    zurückgegebener Datentyp

    Beispiel

    absoluteName Vollständiger Objektname String "::Getriebe::Rechner"
    alignHorz Horizontale Ausrichtung TextAlignmentHorizontalEnum T.alignHorz := TextAlignmentHorizontalRight;
    alignVert Vertikale Ausrichtung TextAlignmentVerticalEnum T.alignVert := TextAlignmentVerticalCenter;
    alwaysDIN Darstellung nach DIN, klassische Leitungstypen, einige Komponenten Boolean T.alwaysDIN := false;
    calcstatus Berechnungsstatus 0: Komponente deaktiviert, : Komponente wird berechnet,  2: Konponente deaktiviert, aber bei Ausgaben berücksichtigt Integer T.calcstatus := 0,1,2;
    calcresultsatiterationstep true: Ergebnisberechnung auch nach jedem Iterationsschritt CalculateResultsAtIterationStepEnum T.calcresultsatiterationstep := CalculateResultsAtIterationStepOnlyLastOne;
    calculationFPROG ID des benutzerdefinierten Unterprogramms (siehe Vorgabewert FPROG) Integer KernelScripting, siehe auch Komponenten 65 und 93
    calculationKernelScript Text des zur Komponente erstellen Kernelscripts String T.KernelScript := "begin end;";
    calculationKernelScriptAuxiliaryCalls KernelScript spezifische Hilfsaufrufe ComponentCalculationKernelScriptAuxiliaryCallsEnum T.ComponentCalculationKernelScriptAuxiliaryCall := ComponentCalculationKernelScriptAuxiliaryCallsNo;
    calculationKernelScriptGenerateDefaultEquations KernelScript spezifisch: Standard-Gleichungen automatisch generieren ComponentCalculationKernelScriptGenerateDefaultEquationsEnum T.ComponentCalculationKernelScriptGenerateDefaultEquations := ComponentCalculationKernelScriptGenerateDefaultEquationsYes;
    calculationMode Berechnungsmodus einer Komponente:
    Standard, XUI-DLL, KernelScripting
    ComponentCalculationModeEnum T.ComponentCalculationMode := ComponentCalculationModeInternal:
    calculationSequence Vorgabewert FSEQ einiger Komponenten, KernelScripting, XUI-DLL ComponentCalculationSequenceEnum T.ComponentCalculationSequence := TestLib_AreIntegersEqual_AndExit (T.calculationSequence, ComponentCalculationSequenceParallelToOtherComponents;
    color Füllungsfarbe der Komponenten (Standard: gelb) Integer T.color := $2068FF; // orange
    color2 Wechselfarbe eine Leitung Integer T.color2 := $FF0000; // blau
    color3 ungenutzt Integer T.color3 := $0000FF; // rot
    color4 Rand eine Kompente (Standard schwarz) Integer T.color4 := $D0E040; // hellblau
    containerMacro Das Makro, in dem ein Bauteil enthalten ist ebsmacro

    println (Getriebe.containerMacro);

    currentPicture Index des Bildes, das zur Darstellung eines Objekts genutzt wird integer T.currentPicture := 0, 1, 2... ;
    description Beschreibungstext String Messwert.description:="T hinter HD-VW 5";
    description2

    Beschreibungstext 2 (z. B. Leittechnik-Kennung)

    String Messwert.description2:="I0005";
    description3 Beschreibungstext 3 (z. B. Verwendungsbereich) String

    Messwert.description3:="Kessel";

    description4 Beschreibungstext 4 (z. B. Kennzeichen) String Messwert.description4:="X";
    disableEbsScriptEvaluation In Textfeldern die Ausführung von EbsScripten deaktivieren - dann wird der Scripttext ausgegeben. Boolean Textfeld.disableEbsScriptEvaluation := true;
    drawBodyStyle Standardgrafik und/oder Bild anzeigen DrawBodyStyleEnum T.DrawBodyStyle := DrawBodyStyleDefaultAndPicture;

    dualmacro

    Gibt die Makroschnittstelle an ein Makro zurück und umgekehrt

    ebsmacrobase VW2_mit_NK.dualMacro
    fontAutoScale Objekt- und/oder Fontgröße anpassen - oder keine Anpassung Integer Getriebe::Rechner.fontAutoScale := 2;
    fontCol Schriftfarbe Integer T.fontcol := $480048; // Purpur
    fontName Name der Schriftart String println (T.fontName);
    fontPointSize Größe der Schrift in Points Integer T.fontPointSize := 14;
    fontSize Größe der Schrift Integer T.fontSize := -18;
    fullName Vollständiger Name des Objekts String "Getriebe::Rechner"
    htmlAutoResize Für HTML-Texte: automatische Größenanpassung, so dass der Text vollständidg dargestellt wird Boolean Text.htmlAutoResize := true;
    htmlCSS Das CSS des HTML-Textfeldes String Text.htmlCSS:= "h1 {color:mediumseagreen; font-weight:bold; font-size:28pt}";
    htmlSyntax Text unverarbeitet ausgeben (false) oder als HTML interpretiert (true) Boolean Text.htmlSyntax := true;
    name Name des Objekts String "Rechner"
    parentObject Das zugehörige Eltern-Objekt (bei Makros) ebsobject println (Getriebe::Rechner.parentObject);
    pictureCount Anzahl der einem Objekt zugeordneten Bilder Integer println (Getriebe.pictureCount);
    portCount

    Anzahl der Anschlüsse der Komponente

    Integer ebscomp(eobject).portCount;
    pipeAtPort

    Leitung, die mit dem angegebenen Anschluss verbunden ist

    ebspipe ebscomp(eobj).PipeAtPort(port);
    shape Die Form der Komponente, mit der sie dargestellt wird Integer T.shape := 4;
    shapeCount Anzahl der verfügbaren Formen einer Komponente Integer println (Getriebe::Kondensator.shapeCount);
    sortString Sortierstring für die interne Rechenkern-Objekt-Reihenfolge String T.sortString := "bb";
    text Der Text der im Textfeld eingegeben wurde. String println (Text.text); --> {getfilename()}
    textEvaluated Der Text der in einem Textfeld angezeigt wird. String println (Text.textEvaluated); -->AllProperties.ebs
    textDependsOnProfile true: unterschiedliche Texte in Profilen möglich Boolean Text.textDependsOnProfile := true;
    textFromParentProfile true: Es wird der Text aus dem Eltern-Profil angezeigt Boolean Text.textFromParentProfile := false;
    transientState transiente bzw. instationäre Berechnung: Dieser eine zeitabhängige Vorgabewert stellt die Bauteil-Ergebnisse aller zeitabhängigen Vorgabewerte diese Bauteils zum Ende eines Zeitschritts als Startwerte für den nächsten Zeitschritt zur Verfügung. String println (Getriebe::Kondensator.transientState);
    visible Sichtbarkeit des Objekts Integer

    Messwert.visible:=false;          // unsichtbar schalten

    width Breite einer Leitung Integer T._1.width := 4; // Leitung an Anschluss 1 auf Breite 4 setzen

     

    Die Verwendung dieser Syntax ist sowohl mit Ebsvar-Konstanten (direkte Verwendung des Namens des entsprechenden Objekts in der Schaltung) als auch mit Ebsvar-Variablen (im EbsScript definierte Variablen, die auf Objekte in der Schaltung verweisen) möglich. Beispiel:

    Wenn es in der Schaltung eine Leitung mit dem Namen H2O_DAMPF_4 gibt und ePipe im EbsScript deklariert ist

    var ePipe:ebsPipe;
    

    kann nach der Zuweisung

     ePipe:=H2O_DAMPF_4;
    

    sowohl mit

    epipe.p
    

    als auch mit

    H2O_DAMPF_4.p

    auf den Druck dieser Leitung zugegriffen werden.

    Methoden für den Zugriff auf Attribute eines Objekts

    Dementsprechend kann auch auf andere Attribute der Objekte eines Modells (Komponenten, Linien, Makros, Wertekreuze, Textfelder, OLE-Objekt, grafische Elemente usw.) zugegriffen werden - einige Eigenschaften sind nicht für alle Objekttypen verfügbar.

    Syntax

    Beschreibung

    zurückgegebener Datentyp

    Beispiel

    SetDefaultWidth

    Breite des Objekts auf die Standardbreite setzen. Leitung: Linienbreite / Bauteil: Breite des Rahmens

    - Dampf.setDefaultWidth;
    SetDefaultColor

    Farbe des Objekts auf die Standardfarbe setzen. Leitung: Farbe dje nach Fluid / Bauteil: Farbe der inneren Oberfläche

    - Efficiency_meter.setDefaultColor;
    SetDefaultColor2

    Farbe 2 des Objekts auf die Standardfarbe setzen. Leitung: alternierende Fluidfarbe / Bauteil: nicht genutzt

    - Dampf.setDefaultColor2;
    SetDefaultColor3

    Farbe 3 des Objekts auf die Standardfarbe setzen. Leitung: nicht verwendet / Bauteil: nicht verwendet

    - Dampf.setDefaultColor3;
    SetDefaultFont

    Schriftart des Textes des Objekts auf die Standardschriftart setzen. Leitung: nicht verwendet / Bauteil: Schriftart des mit der Komponente angezeigten Textes

    - Efficiency_meter.setDefaulFont;
    SetDefaultFontColor

    Schriftfarbe des Textes eines Objekts auf die Standard-Schriftfarbe setzen. Leitung: nicht verwendet / Bauteil: Schriftfarbe des mit dem Bauteil angezeigten Textes

    - Efficiency_meter.setDefaulFontColor;
    SetDefaultFormat Schriftfarbe des Textes des Objekts auf die Standard-Schriftfarbe setzen: Textfeld: horiz. align:left, verti. align top - Textfield.setDefaulFormat;
    PipeAtPort Abrufen der an dem durch den ersten Parameter angegebenen Anschluss einer Komponente angeschlossenen Leitung ebspipe println (Efficiency_meter.PipeAtPort(2));
    CompViaPipeAtPort Abrufen von Bauteil ebscomp, das mit dem anderen Ende der Leitung verbunden ist, die mit dem Anschluss der durch den ersten Parameter angegebenen Komponente verbunden ist ebscomp println (Efficiency_meter.CompViaPipeAtPort(2));
    PipeViaPipeAtPort Abrufen der Leitung ebspipe, die mit dem anderen Ende der Leitung verbunden ist, die an den Port der durch den ersten Parameter angegebenen Komponente angeschlossen ist ebspipe println(Power_Summarizer.pipeViaPipeAtPort(1));
    DataViaPipeAtPort Abrufen von ebspipe oder ebscomp, die mit dem anderen Ende des Datenstroms verbunden sind, der mit dem Anschluss der durch den ersten Parameter angegebenen Komponente verbunden ist ebsdata

    println (Efficiency_meter.dataViaPipeAtPort(2));
    println(Power_Summarizer.dataViaPipeAtPort(1));

    GetEbsValue Abrufen eines bestimmten Vorgabewertes oder Ergebnisses - 1. Parameter: Name des Wertes (String) ebsvar var ev:ebsvar;
    ev := Kond_1.getEbsValue("KAN");
    GetEbsArray Abrufen einer Lennlinie (Characteristic) oder eines Ergebnis-Arrays - 1: Name der Kennlinie (String) ebscharline var ec:ebscharline;
    ec := Kond_1.getEbsArray("CKAM1");
    println (ec.x[2]);
    GetEbsMatrix Abrufen einer Spezifikationsmatrix oder einer Ergebnismatrix - 1. Parameter: Name der Matrix (String) ebsmatrix var em:ebsmatrix;
    em := Kond_1.getEbsMatrix("MXHTCOEFF");
    GetFamilyOfEbsArrays Abrufen einer Kennlinien-Familie oder eines Ergebnisfeldes - 1. Parameter: Name der Kennlinien-Familie (String) ebsfamilyofcharlines var efoc: ebsfamilyofcharlines;
    efoc := Generator.getfamilyofebsarrays ("FCOSPHI");

     

    Methoden von Macro-Objekten

    Dementsprechend kann auch auf Attribute eines Makros zugegriffen werden

    Syntax

    Beschreibung

    Parameter

    zurückgegebener Datentyp

    Beispiel

    PipeAtPortAlias

    Liefert die ebspipe, die außerhalb des Makros an einen Port eines Makros angeschlossen ist. Der Anschluss wird durch seine Kurzbeschreibung angegeben.

    1: string ebspipe println(VW1_mit_NK.pipeAtPortAlias("port_named_b"));
    CompViaPipeAtPortAlias

    Liefert die ebscomp, die außerhalb des Makros über eine ebspipe verknüpft ist, die außerhalb an einen Port eines Makros angeschlossen ist. Der Anschluss wird durch seine Kurzbeschreibung angegeben.

    1: string ebscomp println (VW1_mit_NK.compViaPipeAtPortAlias("port_named_b"));
    PipeViaPipeAtPortAlias Liefert die ebspipe, die außerhalb des Makros über eine ebspipe verbunden ist, die außerhalb an einen Port eines Makros angeschlossen ist. Der Anschluss wird durch seine Kurzbeschreibung angegeben. 1: string ebspipe println (VW1_mit_NK.pipeViaPipeAtPortAlias("logic_port"));
    DataViaPipeAtPortAlias Liefert ein ebsdata-Objekt (ebscomp, ebspipe, ..), das außerhalb des Makros über eine ebspipe verknüpft ist, die außerhalb an einen Port eines Makros angeschlossen ist. Der Anschluss wird durch seine Kurzbeschreibung angegeben. 1: string ebsdata println (VW1_mit_NK.DataViaPipeAtPortAlias("port_named_b"));
    RunEbsscript Ermöglicht die explizite Ausführung eines der Makro-EbsScripte „Vor der Berechnung“, „Nach der Berechnung“ oder „Übernahme von Sollwerten“. 1: userCodeType:usercodetypeenum
    2: invocation:string = ""
    ebsscriptstatusenum println (enumtostring (VW1_mit_NK.runEbsScript(UserCodeTypeAfterCalculation)));
    GetObjects Ermöglicht den Zugriff auf Objekte innerhalb eines Makros, gefiltert nach Typ und danach, ob auch Objekte aus enthaltenen Makros einbezogen werden sollen. 1: ebsobjecttype:string
    2: includeChildContexts:boolean
    array of ebsobject aeo := VW1_mit_NK.getObjects();
    println (length(aeo));

    Beispiel-Script das RunEbsscript verwendet - ausführbar im Beispiel Block750.ebs

    var rc: ebsscriptstatusenum;
    begin
    clrscr;
    rc := VW2_mit_NK::MacroInterface.runEbsScript(UserCodeTypeAfterCalculation);
    println (enumtostring(rc));
    rc := VW1_mit_NK::MacroInterface.runEbsScript(UserCodeTypeBeforeCalculation);
    println (enumtostring(rc));
    end.

    Output of the script:
    EbsScriptStatusOk
    EbsScriptStatusScriptNotFound
     
    

    Beispiel-Script das getObjects verwendet - ausführbar im Beispiel Block750.ebs

    var aeo: array of ebsobject;  
    eo: ebsobject;
    begin
    aeo := VW2_mit_NK::MacroInterface.getObjects ("ebspipe", true);
    for eo in aeo do begin
    println (eo.name);
    end;
    end.

    Output of the script:
    H2O_FLUESSIG_16
    H2O_FLUESSIG_36
    Dampf
    Wasser_1
    Wasser_2
    Wasser_3